import pytest

def add(x,y):
    return x+y
class TestAdd:
    # pytest 的参数化代码
    # @pytest.mark.parametrize(拆包的字符串变量,参数化的数据列表)
    # 本质 可以理解为 对 参数化的列表数据进行遍历
    # 遍历过程中,拿到 每一项的数据 进行拆包

    @pytest.mark.parametrize('a,b,expect',[(1,1,2),(0,1,1),(0,0,0)])
    def test_add(self,a,b,expect):
        result=add(a,b)
        assert result == expect


if __name__ == '__main__':
    pytest.main(['-s','hm_08_参数化_方式1.py'])

"""
注意事项:
1.@pytest.mark.parametrize(拆包的字符串变量,参数化的数据列表)
2.拆包的自妇产变量---类型是字符串 里面的变量名 要用逗号进行分隔. 字符串变量名要和方法的参数一致
3.参数的数据列表--一般是列表,列表中 包裹 元组.一个元组 表示 一个用例的数据.用例的数据 一定要和 拆包的字符串变量对应
    [(),(),()]
4.参数化的方法,也要 设置 拆包的字符串变量
"""
